package com.day06;
/*
一、数组的概述
1.数组的理解：是多个相同类型数据按一定顺序排列的集合，
              并使用一个名字命名，并提过编号的方式对这些数据进行统一管理

2.数组相关的概念：
>数组名
>元素
>角标、下标、索引
>数组的长度：元素的个数

3.数组的特点：
1）数组是有序排列的
2）数组属于引用数据类型的变量。数组的元素，既可以是基本数据类型，也可以是引用数据类型
3）创建数组对象会在内存中开辟一整块连续的空间
4）数组的长度一旦确定就不能修改

4.数组的分类：
    ①按照维数：一维数组、二维数组、...
    ②按照数组元素的类型：基本数据类型元素的数组、引用数据类型的数组

5.一维数组的使用：
  ①一维数组的声明和初始化
  ②如何调用数组的指定位置的元素
  ③如何获取数组的长度
  ④如何遍历数组
  ⑤数组元素的默认初始化值：见ArrayTest1.java
  ⑥数组的内存解析：见ArrayTest1.java
 */
public class ArrayTest {
    public static void main(String[] args){

        //①一维数组的声明和初始化
        int num ;//声明
        num = 10;// 初始化
        int id = 1001;//声明+初始化

        int [] ids;//声明
        //1.1静态初始化:数组的初始化和数组元素的赋值操作同时进行
        ids = new int[]{1001,1002,1003,1004};
        //1.2动态初始化:数组的初始化和数组元素的赋值操作分开进行
        String [] names =new  String[5];

        //总结：数组一旦初始化完成，其长度就确定了。

        //②如何调用数组的指定位置的元素：通过角标的方式调用
        //数组的角标（或索引）从0开始的，到数组的长度-1结束
        names[0] = "王铭";
        names[1] = "王赫";
        names[2] = "张学良";
        names[3] = "孙居龙";
        names[4] = "王宏志";//charAt(0)
        //names[5]="周扬";

        //③如何获取数组的长度
        // 属性：length
        System.out.println(names.length);//5
        System.out.println(ids.length);

        //④如何遍历数组
//        System.out.println(names[0]);   快捷键的使用：
//        System.out.println(names[1]);    //Ctrl+shift+/就是文档注释，点/就回来
//        System.out.println(names[2]);    //ctrl+/全部注释，再重复操作就解除
//        System.out.println(names[3]);
//        System.out.println(names[4]);
        for(int i = 0;i < names.length;i++){
            System.out.println(names[i]);

            //正确的写法
            int[] arr4 = {1,2,3,4,5};//类型推断
        }
    }
}
